﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using CasaBella.Entities;
using System.Data.OleDb;
using System.Data.Common;
using System.Data.SqlClient;

namespace CasaBella.Repository
{
    public class CasaBellaDatabaseInitializer:DropCreateDatabaseAlways<CASABELAContext>
    {
        protected override void Seed(CASABELAContext context)
        {
            if (context == null)
                throw new ArgumentException("context");

            GetRol().ForEach(p => context.ROLs.Add(p));
            GetOperador().ForEach(p => context.OPERADORs.Add(p));
            GetSexo().ForEach(p => context.SEXOes.Add(p));
            GetEstadoCivil().ForEach(p => context.ESTADO_CIVIL.Add(p));
            GetTipoComprobante().ForEach(p => context.TIPO_COMPROBANTE.Add(p));
            GetColor().ForEach(p => context.COLORs.Add(p));
            GetMedidaColchon().ForEach(p => context.MEDIDA_COLCHONes.Add(p));
        }

        static List<ROL> GetRol()
        {
            var roles = new List<ROL>
                {
                    new ROL {Descripcion = "ADMINISTRADOR"},
                    new ROL {Descripcion = "VENDEDOR"}
                };
            return roles;
        }

        static List<OPERADOR> GetOperador()
        {
            var operadores = new List<OPERADOR>
                {
                    new OPERADOR {Descripcion = "MOVISTAR"},
                    new OPERADOR {Descripcion = "CLARO"},
                    new OPERADOR {Descripcion = "RPM"},
                    new OPERADOR {Descripcion = "RPC"}
                };
            return operadores;
        }

        static List<SEXO> GetSexo()
        {
            var sexos = new List<SEXO>
                {
                    new SEXO {Descripcion = "MASCULINO"},
                    new SEXO {Descripcion = "FEMENINO"}
                };
            return sexos;
        }

        static List<ESTADO_CIVIL> GetEstadoCivil()
        {
            var estCiviles = new List<ESTADO_CIVIL>
                {
                    new ESTADO_CIVIL {Descripcion = "SOLTERO(A)"},
                    new ESTADO_CIVIL {Descripcion = "CASADO(A)"},
                    new ESTADO_CIVIL {Descripcion = "DIVORCIADO(A)"},
                    new ESTADO_CIVIL {Descripcion = "VIUDO(A)"},
                    new ESTADO_CIVIL {Descripcion = "CONVIVIENTE"},
                    new ESTADO_CIVIL {Descripcion = "SEPARADO(A)"}
                };
            return estCiviles;
        }

        static List<TIPO_COMPROBANTE> GetTipoComprobante()
        {
            var tipComprobantes = new List<TIPO_COMPROBANTE>
                {
                    new TIPO_COMPROBANTE {Descripcion = "BOLETA"},
                    new TIPO_COMPROBANTE {Descripcion = "FACTURA"},
                    new TIPO_COMPROBANTE {Descripcion = "TICKET"}
                };
            return tipComprobantes;
        }

        static List<COLOR> GetColor()
        {
            var color = new List<COLOR>
                {
                    new COLOR {Descripcion = "OTROS"},
                    new COLOR {Descripcion = "AMARILLO"},
                    new COLOR {Descripcion = "NEGRO"},
                    new COLOR {Descripcion = "GRIS"}
                };
            return color;
        }

        static List<MEDIDA_COLCHON> GetMedidaColchon()
        {
            var medida = new List<MEDIDA_COLCHON>
                {
                    new MEDIDA_COLCHON {Descripcion = "1.0 plz"},
                    new MEDIDA_COLCHON {Descripcion = "1.5 plz"},
                    new MEDIDA_COLCHON {Descripcion = "2.0 plz"},
                    new MEDIDA_COLCHON {Descripcion = "QUEEN"},
                    new MEDIDA_COLCHON {Descripcion = "KING"}
                };
            return medida;
        }
    }
}
